package com.hkrt.demo.domain.repository

import com.hkrt.demo.data.response.LoginResponse
import com.hkrt.demo.domain.entity.Comment
import com.hkrt.demo.domain.entity.Like
import com.hkrt.demo.domain.entity.Shot
import com.hkrt.demo.domain.fetcher.result_listener.RequestType
import io.reactivex.Completable
import io.reactivex.Flowable
import io.reactivex.Single

/**
 * @author  Chenjinguang
 * @date 02.08.2017.
 */
interface HkrtRepository {

    fun getShotList(shotType: String, count: Int): Flowable<List<Shot>>

    fun getShotLikes(shotId: String): Flowable<List<Like>>

    fun getShotComments(shotId: String): Single<List<Comment>>

    fun likeShot(shotId: String): Completable

    fun deleteCacheFor(requestType: RequestType)

    fun login(params:HashMap<String,String>): Flowable<LoginResponse>
}